import { CommandPromptContent, CommandPromptCopy, CommandPromptList, CommandPromptPrefix, CommandPromptRoot, CommandPromptSurface, CommandPromptTrigger, CommandPromptTriggerDivider, CommandPromptViewport, } from "@vercel/geistdocs/components/command-prompt"; import type { GeistdocsAgentReadinessConfig } from "@vercel/geistdocs/config"; import type { Metadata } from "next"; import { config } from "@/lib/geistdocs/config"; import { getLocalizedPath } from "@/lib/geistdocs/public-path"; import { CTA } from "./components/cta"; import { Hero } from "./components/hero"; import { OneTwoSection } from "./components/one-two-section"; import { TextGridSection } from "./components/text-grid-section"; const title = "Geistdocs"; const description = "A Vercel documentation template built with Next.js and Fumadocs. Designed for spinning up documentation sites quickly and consistently."; export const generateMetadata = async ({ params, }: PageProps<"/[lang]">): Promise => { const { lang } = await params; const agentConfig = config.agent as GeistdocsAgentReadinessConfig | undefined; return { title, description, alternates: { ...(config.siteUrl ? { canonical: getLocalizedPath(lang, "/"), ...(agentConfig && agentConfig.enabled !== false ? { types: { "text/markdown": getLocalizedPath(lang, "/agents.md"), }, } : {}), } : {}), }, openGraph: { title, description, type: "website", ...(config.siteUrl ? { url: getLocalizedPath(lang, "/") } : {}), }, }; }; const textGridSection = [ { id: "runtime", title: "Package-backed runtime", description: "Share navigation, search, Ask AI, page actions, and rendering behavior through one versioned package.", }, { id: "content", title: "Project-owned content", description: "Keep documentation, configuration, and thin adapters in the product repository where teams already work.", }, { id: "agents", title: "Agent-readable by default", description: "Publish llms.txt, agents.md, a semantic sitemap, and focused Markdown versions of documentation pages.", }, { id: "shapes", title: "Flexible site shapes", description: "Support localized, versioned, multi-section, base-path, and root-mounted documentation without forking the runtime.", }, ]; const COMMAND_FOR_HUMANS = "npx @vercel/geistdocs init"; const COMMAND_FOR_AGENTS = "npx @vercel/geistdocs init --agent"; const HomePage = async ({ params }: PageProps<"/[lang]">) => { const { lang } = await params; return (
For humans For agents $ {COMMAND_FOR_HUMANS} {COMMAND_FOR_AGENTS}

content/docs/ stores the documentation source.

geistdocs.tsx defines product and agent metadata.

@vercel/geistdocs provides the shared runtime.

  • /agents.md {" "} explains when to use the product and where to find authoritative context.
  • /sitemap.md {" "} maps documentation pages by purpose, summary, and prerequisites.
  • /llms.txt {" "} provides the complete documentation corpus as Markdown.
); }; export default HomePage;